Please read this document thoroughly. It describes the known bugs in the current release of Ambry and the bugs fixed, features added, and changes made since the last version of Ambry.
Known Bugs
• None
Revision History
Version 1.3.1 • 16-Nov-98
• [Bug fix] Fixed a bug preventing properties with pop-up values to be set using the pop-up value.
• [Bug fix] Fixed a minor bug which prevented the Delete key from triggering the Clear command.
• [Bug fix] Fixed a bug in a last-minute change to pop-up and characteristics names which prevented them from being changed.
• [Bug fix] When you add a property to, remove a property from, or change a property’s name in an object, those changes are now inherited by children of that object.
• [Feature] When you add a property to, remove a property from, or change a property’s name in an object, those changes are shown immediately in any open instance of that object. Previously, you had to close and re-open the instance to see the changes.
Version 1.3 • 12-Nov-98
• [Bug fix] Implemented a hopefully temporary but passable workaround in the undo mechanism to prevent the common crash when quitting after changing an object’s name, a field’s value, or any other bit of text.
• [Bug fix] Fixed a long-standing bug where using the arrow keys to select objects wouldn’t update the menu.
• [Bug fix] Fixed some interface bugs in the Characteristics property window and the Pop-up Values window which caused the scrollbars to not function.
• [Bug fix] Fixed a bug in which the turndown for a newly-created child object wouldn’t appear, even if the parent of the object had a Contents property.
• [Bug fix] Activated the Expressions command in the Window menu.
• [Bug fix] Fixed some minor problems when displaying dialogs which may have caused the strange problem where no window would be active, making nearly all menu items become inactive.
• [Bug fix] We no longer allow limits to be set on a Simple Property set to display as a boolean value.
• [Bug fix] If it’s available, we now use the Contextual Menu Manager. This makes us a better Mac OS program, and it fixes an incompatability with ADD.
• [Bug fix] We no longer redraw the screen after each item is added to a window to prevent repeated “jumps” to the top of the window when adding objects or properties to a window scrolled all the way to the bottom.
• [Bug fix] We now perform saves “safely” (and the proper Mac OS way) by writing to a temporary file, then swapping when done.
• [Bug fix] When you Save As a document, links to objects within the document no longer break.
• [Bug fix] Fixed some severe problems with opening object contents and property windows; I think we’ve now found and eliminated all of the major instability problems.
• [Bug fix] The “$self” and “$selection” variables broke in 1.2; they are fixed now.
• [Bug fix] The Console window no longer tries to evaluate empty expressions.
• [Change] To prevent possible crashes, you can no longer set the “Name” property to an expression.
• [Change] You are no longer forced to save a document at the time of it’s creation.
• [Feature] Added drag and drop for rearrangement and addition of pop-up items in simple property values. You can drag any text into the window to create a pop-up item with that value.
• [Feature] Added drag and drop for rearrangement and addition of characteristics. You can drag any text into the window to create a characteristic with that name.
• [Feature] We now use the internationalization utilities when drawing decimal values. This means that on foreign versions of Mac OS, you’ll get the proper thousands and decimal characters.
• [Feature] If you are running Mac OS 8.5 or later, Ambry uses the new Navigation Services open and save dialogs.
• [Feature] Key selection of items in Object List, Object Properties, Unit Set, Characteristics, Pop-Up Values, and Expressions windows.
• [Feature] Added some sample CDs to the CD database sample.
• [Feature] Object Alias objects: Select an object and choose Make Alias from the Object menu to make an alias to that object. Double-clicking the alias object opens the properties window for the original. You can also create an alias object by holding the Command and Option keys while dragging the object to a target location.
• [Feature] Undoing a drag now undoes all objects’ movement, rather than one at a time.
• [Feature] File alias object names now appear in italics in object list windows.
• [Feature] Brought over global variables and the “~last” variable from the latest version of the expression parser in Pip.
• [Feature] Unit sets can now handle conversion from strings with multiple units in them, such as “2 min 23 sec”, and back. A simple property set to be a unit value can display its value in smallest possible units by checking the Whole Numbers option. For example, “124 min” would be shown as “2 hr 4 min”.
• [Feature] Added Table Objects. In the table view, you can drag cell edges to resize a row or column. Hold the option key while dragging cell edges to add or remove rows and columns. Tables will be improved dramatically once AppleScript support is in place, but this will get you a long way there.
Version 1.2.4 • 15-Aug-98
• [Bug fix] You can now undo an object name change.
• [Bug fix] Occasionally, an initial ‘_’ would appear in the title of a properties window. Fixed.
• [Bug fix] String values for fields are now handled appropriately in the expression parser as strings, rather than being interpreted as numbers.
• [Bug fix] We no longer try to evaluate an empty expression for a field whose value comes from an expression. This could cause crashes under some (rare) circumstances.
• [Bug fix] Fixed a bug which prevented field values to be set to an expression.
• [Bug fix] You can now undo and redo actions in the object properties view.
• [Bug fix] Fixed a bug which caused the floating windows to stop floating after running a script.
• [Bug fix] We no longer create a “Contents” field if we’re creating a child object, unless the parent has a “Contents” field, as well.
• [Feature] You can now include quotes in a string in the expression parser by using “\"”.
• [Feature] Added the string concatenation ‘&’ operator to the expression parser. For example, “"this " & " is a " & "test"” will produce the string “this is a test”.
Version 1.2.3 • 01-Aug-98
• [Bug fix] Fixed a bug in undoing and redoing changing or clearing the picture in a Graphic field.
• [Bug fix] We no longer allow smaller than a 100x100 pixel Graphic field window; smaller graphics are fine.
• [Bug fix] Fixed a problem with the scrollbars not working properly in Graphic field windows.
• [Bug fix] Fixed several severe problems in the actions code. Everything you do will be stabler now.
• [Bug fix] If an object’s contents are visible through a turndown, those contents are updated when objects are added to or removed from the object’s contents.
• [Bug fix] When you delete an object, its property and contents windows are closed, as are those of all objects inside that object.
• [Bug fix] We inadvertantly had the PowerPC version requiring Appearance Manager. It now works as expected — if the Appearance Manager 1.0.1 (installed with Mac OS 8.1) or later is available, it uses it. Otherwise, we build our own interface.
Version 1.2.2 • 31-Jul-98
• [Bug fix] Fixed a bug which caused you to not be able to Cut or Clear any fields.
• [Bug fix] Fixed a bizarre bug which prevented more than one object to be dragged at once.
Version 1.2.1 • 21-Jul-98
• [Bug fix] Fixed a problem reading objects which caused inherited properties to not be marked as such.
Version 1.2 • 20-Jul-98
• [Change] You must now use the @-sign for the dice operator; for example, “3 @ 8” will total three 8-sided dice.
• [Change] Nifty new application icon. If you had Ambry installed before, you’ll probably have to rebuild your desktop to see it.
• [Change] Completely new About box.
• [Change] The Catalog is now a floating window. Instead of specifying a name in the Catalog before creating an item, you now just double-click and change the name of the just-created object in the appropriate window.
• [Change] Several (invisible to the end user) changes to allow simpler localization in the near future.
• [Change] The Registration procedure has changed. You now choose Register from the Apple menu to register, a dialog reminds you each time you run the program if you haven’t registered, and saving and printing are no longer disabled.
• [Bug fix] Fixed several potential memory corruption bugs in reading documents.
• [Bug fix] Fixed a major problem in reading Unit Set objects which prevented documents created with the 68K version to not be able to be read in the PowerPC version and vice-versa.
• [Bug fix] When I upped the limit on length of property names, I forgot to tell the expressions parser. Consequently, you couldn’t reference properties with names longer than 31 characters. Fixed.
• [Bug fix] Fixed a potential crasher in the expression parser when using properties.
• [Bug fix] Some minor interface changes, including making the “Page Setup” menu item not have an ellipses. Fixed a bunch of other minor bugs and (again) sped up the core object stuff.
• [Feature] There is now Balloon Help all over the place, not just in menus.
• [Feature] Ambry takes advantage of the Appearance Manager to draw controls, if it’s available. This requires Appearance Manager Extension 1.0.1 or later.
• [Feature] When you hold down the Control key in the Properties or Object List windows, the cursor changes to the contextual menu cursor to indicate that contextual menus are available there.
• [Feature] Made significant changes to the expressions parser, as detailed below. For more information, see the expanded documentation in the User Guide.
• [Feature] An entirely new expression console. We now have several quick access die buttons, and display the results of expressions in a much more aesthetic manner.
• [Feature] You can now include multiple expressions in a single expression sequence, separated by semicolons.
• [Feature] References to properties must now include both the object ID and the property to set (and consequently, expressions can set properties on objects other than themselves), a period, and the name of the property in quotes. For example, “$self."protection" += 2;”.
• [Feature] Expressions can have variables — simply use the name of the variable you want, prefixed with a dollar sign. Storage is automatically set up for the variable. Variables can hold strings, numbers, and arrays. To reference an index in an array, use the form “$variable[index]”. The index reference can be any valid expression. There’s no need to specify the size of an array — they simply grow as needed.
• [feature] The read-only variables $self and $selection are created when an expression sequence is evaluated. $self contains the ID of the first selected object; $selection is an array of each selected object’s ID. For example, you could specify “$self."health" += 3;” to add three to the “health” property of the object specified in $self.
• [Feature] You can now set properties to string values from the expression console.
• [Feature] The Console now has its own command key, Command-L, for showing and hiding.
• [Feature] We now store the size and location of the Catalog and Console between launches.
• [Feature] You can create Expression objects which hold an expression. Drag objects onto the object in an object list view to evaluate the expression on those objects.
• [Feature] You can specify an expression value for properties.
Version 1.1.1 • 01-Oct-97
• [Code change] Ambry for 68k machines now requires the Code Fragment Manager, to allow us to use Contextual Menus and other fancy features from MacOS 8 in the near future.
• [Bug fix] The Combine Objects command is now only enabled when one or more objects whose name properties are set to the same unit set object are selected.
• [Bug fix] The included documentation now reflects changes to workflow and interface made in 1.1.
Version 1.1 • 16-Sep-97
• [Change] Redesigned the various icons, alerts, dialogs, and windows to have a consistant appearance, both with each other and with the MacOS and new MacOS 8 human interface guidelines. This included rearranging the various list windows to appear more like MacOS 8’s lists; adding an icon in the upper left which displays what kind of list is being shown in the window; upping the minimum and standard state sizes for most windows slightly; removing the last traces of captions that don’t dim propertly when inactive; and enabling/disabling some options in the property edit window more appropriately.
• [Change] Made drag and drop in the object display window behave more like it does in the Finder.
• [Change] Removed the pop-up in the Console window and the Expressions list window entirely. Expressions are now handled by scripts.
• [Change] Rewrote large chunks of code, making them faster (especially actions involving sorting the contents and properties of objects), more stable, and more portable.
• [Change] You can now edit the Name property directly in the Properties window. The Name property is actually now a property that you can specify parameters for (such as having it built by a script). No, you can’t delete the Name property.
• [Change] All properties now correctly report an m-dash if their value can’t be represented textually.
• [Change] Properties’ names can now be 255 characters in length (the previous limit was 63).
• [Change] You can now edit a property’s expression/script directly in the property’s edit window if it has one.
• [Change] Removed the Unit Object type; from now on, simply create an object and set its name to display as a unit type. The Combine Objects command understands how to combine objects made this way.
• [Bug fix] Closing a document when more than one Contents or Properties window is visible crashes. Fixed.
• [Bug fix] When opening a document causes another document to open (to validate object links), the first document is now brought to the front afterwards.
• [Bug fix] Fixed a couple of parsing errors in the expressions console.
• [Bug fix] The Console window no longer vanishes into nowheresville if you close it using the Close command.
• [Feature] During drags, the selected target is drawn in the hilite color, rather than in black. Also changed the width of the drag outline to be 2 pixels wide, so it looks more like the MacOS 8 Finder’s drags. During a drag-copy, the cursor becomes a “Arrow with plus” like in MacOS 8.
• [Feature] Limited functionality of Ambry is now scriptable. Check out the new chapter in the user manual and the example scripts in the Scripts folder for more information on what can be scripted at the moment.
• [Feature] Scripts menu: This menu displays items for each script document in the “Scripts” menu in the same level as the Ambry application. Select an item to run the script.
• [Feature] The base unit in a unit set is displayed in bold in the Unit Set Edit window.
• [Feature] Windows menu: The Windows menu now has Stack, Tile, Tile Vertical, and Zoom commands.
• [Feature] Added the Object List property type, displayed as the number of items in its contents. It stores a list of objects. The user interface special-cases in a lot of places for an Object List property called “Contents” (see below). In a properties window, you can drag an object to an Object List property to move or copy it to that property’s contents or double click the item to open a window with the property’s contents.
• [Feature] Added the Object Alias property type, displayed as “(object’s document):object name”. It stores a reference to another object. All objects have a “Parent” Object Alias property created. This property cannot be deleted. Drag an object to an Object Alias item in a properties window to change the object it references or double-click the item to open the properties window for the object.
• [Feature] The Contents property is now an Object List property. It can be deleted (and, of course, other Object List properties can be created).
• [Feature] The Parent property is now an Object Alias property. It cannot be deleted, but it can be changed (this cannot be undone).
• [Feature] Printouts of Contents and Properties windows now have captions describing which object is being shown, the date and time of the printout, and page numbers. Rules above and below the main area of the printout have also been added.
• [Feature] Added support for multiple undo. Use the “Undo” command to undo actions and the “Redo” command to redo them. The number of actions that are stored is limited only by memory. Performing any action which cannot be undone clears the action list.
• [Feature] When validating object links, Ambry now assumes that an open document with the same name as the document referenced in the link is, in fact, the referenced document. This eliminates the majority of “Broken Object Link” warnings.
• [Feature] Added the Catalog window. Using this non-modal dialog to create objects is much simpler than using the modal Create Object dialog (the Create Object dialog has been removed).
• [Feature] Added some features to the console: expressions that don’t interact with an object are no longer evaluated once per selected object, the individual die roll results from die operations are displayed in the results, and the name of each object an expression affects is displayed in the results.
• [Feature] You can use drag and drop to rearrange properties and to copy them to other objects.
• [Feature] Dragging a selection to the Finder creates an “Ambry clipping”, not an “untitled” clipping.
• [Feature] Added Balloon Help to all dialogs and windows; cleaned up Balloon Help in the menus.